package com.google.code.UtopiaXml;

/**
 * Common interface for entities that are supposed to generate a Java class.
 *
 * @author Michael Simacek
 */
public interface ClassTemplate {

    /**
     * Create a ClassBuilder contatinig the code of desired class.
     *
     * @param pkgName package name of the resulting class
     * @return ClassBuilder containing the class
     */
    public ClassBuilder generateClass(String pkgName);

    /**
     * Generates a parse*() method for a parser if it's supposed to be be parsed
     * by a separate method. Otherwise, doesn't do anything.
     *
     * @param cb
     */
    public void generateParseMethod(CodeBuilder cb);
}
